package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;
import com.dhcc.DRGsHosp.core.domain.MrAppendPage;
import com.dhcc.DRGsHosp.core.domain.MrBaseInfo;
import com.dhcc.DRGsHosp.core.domain.MrDiagnose;
import com.dhcc.DRGsHosp.core.domain.MrExpense;
import com.dhcc.DRGsHosp.core.domain.MrExpenseSum;
import com.dhcc.DRGsHosp.core.domain.MrIpInfo;
import com.dhcc.DRGsHosp.core.domain.MrOperation;

public interface FileUploadApplication {
	/**
	 * 
	 *  deleteCaseInfo.  
	 *  @Description：根据病例ID 删除病例信息
	 *  @Author mazhaoyan
	 *  @param idList 
	 *  @Date:2017年7月27日下午4:15:12
	 */
	public String deleteCaseInfo(List<String> idList);
	/**
	 * 
	 *  saveBaseInfo.  
	 *  @Description：保存基本信息
	 *  @Author mazhaoyan
	 *  @param baseList 
	 *  @Date:2017年7月27日下午5:25:12
	 */
	public void saveBaseInfo(List<MrBaseInfo> baseList);
	
	/**
	 * 
	 *  saveIpInfo.  
	 *  @Description：保存住院信息
	 *  @Author mazhaoyan
	 *  @param ipList 
	 *  @Date:2017年7月27日下午5:25:12
	 */
	public void saveIpInfo(List<MrIpInfo> ipList);
	
	/**
	 * 
	 *  saveAppInfo.  
	 *  @Description：保存附页信息
	 *  @Author mazhaoyan
	 *  @param appList 
	 *  @Date:2017年7月27日下午8:36:24
	 */
	public void saveAppInfo(List<MrAppendPage> appList);
	/**
	 * 
	 *  saveDiagInfo.  
	 *  @Description：保存诊断信息
	 *  @Author mazhaoyan
	 *  @param diagList 
	 *  @Date:2017年7月27日下午8:36:29
	 */
	public void saveDiagInfo(List<MrDiagnose> diagList);
	/**
	 * 
	 *  saveOperInfo.  
	 *  @Description：保存手术信息
	 *  @Author mazhaoyan
	 *  @param operList 
	 *  @Date:2017年7月27日下午8:36:33
	 */
	public void saveOperInfo(List<MrOperation> operList);
	/**
	 * 
	 *  saveExpInfo.  
	 *  @Description：保存费用信息
	 *  @Author mazhaoyan
	 *  @param expList 
	 *  @Date:2017年7月27日下午8:36:36
	 */
	public void saveExpInfo(List<MrExpense> expList);
	/**
	 * 
	 *  saveExpSumInfo.  
	 *  @Description：保存费用大类信息
	 *  @Author mazhaoyan
	 *  @param expSumList 
	 *  @Date:2017年7月27日下午8:36:41
	 */
	public void saveExpSumInfo(List<MrExpenseSum> expSumList);
	/**
	 * 
	 *  deleteDiagById.  
	 *  @Description：删除诊断
	 *  @Author mazhaoyan
	 *  @param id 
	 *  @Date:2017年8月18日下午2:20:50
	 */
	public void deleteDiagById(String id);
	/**
	 * 
	 *  deleteOperById.  
	 *  @Description：删除手术
	 *  @Author mazhaoyan
	 *  @param id 
	 *  @Date:2017年8月18日下午2:21:00
	 */
	public void deleteOperById(String id);
	/**
	 * 
	 *  deleteExpById.  
	 *  @Description：删除费用
	 *  @Author mazhaoyan
	 *  @param id 
	 *  @Date:2017年8月18日下午2:21:03
	 */
	public void deleteExpById(String id);
	
	public void saveBaseInfo(MrBaseInfo base);
	public void saveIpInfo(MrIpInfo ip);
	public void saveAppendInfo(MrAppendPage append);
	public void saveDiagInfo(MrDiagnose diag);
	public void saveOperInfo(MrOperation oper);
	public void saveExpInfo(MrExpense exp);
	public void saveExpSumInfo(MrExpenseSum expSum);
	/**
	 * 
	 *  updateCostAmount.  
	 *  @Description：根据费用子类更新总费用
	 *  @Author ZouYiyu
	 *  @param id 
	 *  @Date:2017年10月11日上午10:58:38
	 */
	public void updateCostAmount(String id);
	/**
	 * 
	 *  saveCaseInfo.  
	 *  @Description：保存病例信息
	 *  @Author mazhaoyan
	 *  @param caseMap
	 *  @throws Exception 
	 *  @Date:2018年4月3日下午3:27:58
	 */
	public String saveCaseInfo(Map<String,Object> caseMap);
	/**
	 * 
	 * @Title: findAbnomalGroupCase  
	 * @Description:查询病案号是否存在于数据库中
	 * @param @param obj
	 * @param @return   
	 * @return String  
	 * @author shaozhiyuan
	 * @date 2018年5月16日  
	 * @version V3.1.0 
	 * @throws
	 */
	public Boolean findAbnomalGroupCase(String obj);
	/**
	 * 
	 * @Title: findAbnomalGroupCaseList  
	 * @Description:获取分组异常数据列表详细信息 
	 * @param @param inCaseNumberStr
	 * @param @return   
	 * @return List<Map<String,Object>>  
	 * @author shaozhiyuan
	 * @date 2018年5月16日  
	 * @version V3.1.0 
	 * @throws
	 */
	public List<Map<String, Object>> findAbnomalGroupCaseList(String inCaseNumberStr);
	/**
	 * 
	 * @Title: findAbnomalGroupCaseList  
	 * @Description:区分是否手术或操作
	 * @param @return   
	 * @return Boolean  
	 * @author shaozhiyuan
	 * @date 2018年5月17日  
	 * @version V3.1.0 
	 * @throws
	 */
	public Boolean checkIsOper();
	
	/**
	 * 
	 *  @Description：更新ipinfo表的标识位
	 *  @Author fulianxia
	 *  @param datefrom
	 *  @param dateto
	 *  @return
	 *  @Date:2018年3月23日
	 */
	public int saveConfirmFlag(String datefrom, String dateto);
}